
def decorator(func):
    def wrapper():
        print("Before function call")
        func()
        print("After function call")
    return wrapper

def say_hello():
    print("Hello!")

say_hello = decorator(say_hello)
say_hello()



# 装饰器本质上是一个函数，它接收另一个函数作为输入，返回一个新的函数。
# 你可以在这个过程中“加功能

# @装饰器名字
# 其实就是：函数 = 装饰器(函数)
@decorator
def say_hello_v1():
    print("Hello decorator")

say_hello_v1()
